package com.topgay.dao;

import java.util.List;

import com.topgay.domain.CSCenter;
import com.topgay.domain.Declaration;

public interface CSCenterDAO {

	public abstract List<CSCenter> selectCSCenterList(int page, int divide);
	
	/**
	 * CSCenter - 전체 게시물 수 조회
	 * @param divide
	 * @return
	 */
	public abstract int selectTotalContent(int divide);
	
	/**
	 * cscenter 테이블에 내용 insert
	 * @param cscenter
	 * @param divide
	 * @return
	 */
	public abstract int insertCSCenterContent(CSCenter cscenter, int divide);

	
	/**
	 * CSCenter - 조회수를 1개 update 처리하는 메소드 (글 조회시 호출)
	 * @param cscenterNo
	 * @return
	 */
	public abstract int updateCSCenterViewCount(int cscenterNo);
	
	/**
	 * CSCenter - 게시물 정보를 수정하는 메소드
	 * @param cscenter
	 * @return
	 */
	public abstract int updateCSCenterContent(CSCenter cscenter);
	

	/**
	 * CSCenter - 게시물 정보를 삭제하는 메소드
	 * @param cscenterNo
	 * @return
	 */
	public abstract int deleteContentByNO(int cscenterNo);
	
	/**
	 * CSCenter - 글번호로 하나의 게시물을 조회하는 메소드
	 * @param cscenterNo
	 * @return
	 */
	public abstract CSCenter selectCSCenterContentByNo(int cscenterNo);
	

	/**
	 * 신고하기 - 전체 게시물 수 조회
	 * @return
	 */
	public abstract int selectDeclarationTotalContent();
	
	
	/**
	 * 신고하기 - 한개의 신고 글을 입력 처리 메소드
	 * @param declaration
	 * @return
	 */
	public abstract int insertDeclarationContent(Declaration declaration);
	
	/**
	 * 신고하기 - 신고 글 목록 조회
	 * @param page
	 * @return
	 */
	public abstract List<Declaration> selectDeclarationList(int page);
	
	/**
	 * 신고하기 - 가해자 id로 신고 글 목록 조회
	 * @param page
	 * @param assaulterId
	 * @return
	 */
	public abstract List<Declaration> selectDeclarationListByAssaulterId(int page, String assaulterId);
	
	/**
	 * 신고하기 - 가해자 별명으로 신고 글 목록 조회
	 * @param page
	 * @param assaulterNickname
	 * @return
	 */
	public abstract List<Declaration> selectDeclarationListByAssaulterNickname(int page, String assaulterNickname);
	
	/**
	 * 신고하기 - 피해자 id로 신고 글 목록 조회
	 * @param page
	 * @param id
	 * @return
	 */
	public abstract List<Declaration> selectDeclarationListById(int page, String id);
	
	/**
	 * 신고하기 - 한개의 신고 글을 상세 조회
	 * @param page
	 * @param id
	 * @return
	 */
	public abstract Declaration selectDeclarationContentByNo(int declarationNo);
	
	
	/**
	 * 신고하기 - 한개의 신고 글을 처리 결과 수정
	 * @param declarationNo
	 * @param result
	 * @return
	 */
	public abstract int updateDeclarationForResult(int declarationNo, String result);
	
	/**
	 * 신고하기 - 한개의 신고 글을 삭제
	 * @param declarationNo
	 * @return
	 */
	public abstract int deleteDeclarationContentByNo(int declarationNo);
}